/**
 * Main components index file
 * Exports all components for use throughout the application
 * 
 * This file mirrors webapp/components/index.js but uses TypeScript
 * and modern React patterns (hooks, Redux Toolkit)
 */

// General components
export {
  NetPyNEHome,
  NetPyNEField,
  NetPyNEAddNew,
  NetPyNECoordsRange,
  HTMLViewer,
  Tooltip,
  GridLayout,
  Filter,
  ListComponent,
  AdapterComponent,
  SelectField,
  NetPyNETextField,
  NetPyNECheckbox,
  NetPyNESelectField,
  ExperimentControlPanel,
  ControlPanelTreeItem,
} from './general';

// Definition components
export { NetPyNESimConfig } from './definition/configuration';
export { NetPyNEPopulations, NetPyNEPopulation, Dimensions } from './definition/populations';
export { NetPyNECellRules, NetPyNECellRule } from './definition/cellRules';
export { NetPyNEConnectivityRules, NetPyNEConnectivityRule } from './definition/connectivity';
export { NetPyNESubcellsConnectivityRules, NetPyNESubcellsConnectivityRule } from './definition/subcellConnectivity';
export { NetPyNESynapses, NetPyNESynapse } from './definition/synapses';
export { NetPyNEStimulationSources, NetPyNEStimulationSource } from './definition/stimulationSources';
export { NetPyNEStimulationTargets, NetPyNEStimulationTarget } from './definition/stimulationTargets';
export { NetPyNEPlots, NetPyNEInclude, TimeRange } from './definition/plots';

// Instantiation components
export { NetPyNEInstantiated, NetworkControlButtons } from './instantiation';

// Experiment components
export {
  ExperimentManager,
  Experiments,
  ExperimentEdit,
  ExperimentView,
  ExperimentRowFilter,
  ParameterMenu,
} from './experiments';

// Dialog components
export { default as Dialog } from './Dialog/Dialog';
export { default as ConfirmationDialog } from './Dialog/ConfirmationDialog';
export { default as ErrorDialog } from './Dialog/ErrorDialog';

// Main components
export { default as NetPyNE } from './NetPyNE';
export { default as Drawer } from './Drawer/Drawer';
export { default as Topbar, SwitchPageButton } from './Topbar';
export { default as NetPyNEPythonConsole } from './general/NetPyNEPythonConsole';
export { default as PlotViewer } from './general/PlotViewer';
export { default as NetPyNEThumbnail } from './general/NetPyNEThumbnail';
export { default as JsonViewer } from './general/JsonViewer';
export { default as SplitButton } from './general/SplitButton';
export { default as TutorialObserver } from './general/TutorialObserver';
export { default as TutorialBubble } from './general/TutorialBubble';

// RxD module (placeholder)
export { default as Rxd } from './rxd/Wrapper';

// Note: Other optional components will be added as they are migrated

